﻿using System;
using System.Collections.Generic;
using System.Text;

namespace SuperX.Common.Scheduler
{
    // 
    public interface IScheduler : IDisposable
    {
        //
        SchedulerPattern Pattern { get; }

        // 
        ITag Tag { get; set; }

        // 
        void Register(Action<SchedulerValue> action);

        // 
        bool Check(out SchedulerValue dispatchValue);

        // 
        void Invoke(SchedulerValue dispatchValue);

        // 
        void Stop();
    }
}
